major refactoring to entity-component-system architecture

Change-Id: I4297173fd793f2f08670e90eabb0423fdad2a72f