Refactoring

Refactoring base classes
Improved flow of BaseObject properties