Move Encounter over to a singleton model