added Units, started refactoring Engine