Encounter refactor2