Move out responder into its own file