preparing for entity-component redesign