refactor outcome class