Refactors to get different behaviors easily and fixed world state.