Декомпозиция и обратная сборка - наше все :)