Инкапсуляция и абстракция нередко являются итеративными процессами. Когда вы пишете больше кода, конструкции могут терять свой первоначальный смысл, что вполне естественно. Если код взбунтовался, нужен рефакторинг — обновление структуры кода для более полного удовлетворения ваших потребностей. Придется поменять способы представления понятий и форм поведения. Перемещение данных и имплементаций туда-сюда является необходимой частью совершенствования кода.