Refactor method signatures for accuracy and readability
Extract static inner class as a proper class
Extract static inner class as a proper class
Change enum Output scope to public
Update super constructor call parameter list