WIP: Reduce circular dependencies.
Further simplifications.
Updated OOP abstraction. Cloning still does not work.