* complete refactory
* gameobject x components paradigm implemented