implement time travel, entity/component model