working on Entity/Component models