working on #3: entity-component system