refactoring and the introduction of a ControllerArgumentMapper