initial: entity/component/system framework