Refactor responder layer

ref #20