Refactor w/ Replace_Type_with_State and Replace_Conditional_With_Polymorphism