Separates Controller from Responder

Additionally, we choose to favor composition over inheritance, making Controller and Responder modules instead of classes.