start of entity/component system