use request module to simplify some handling
updated response object to handle as calls not handlers
updated spec to to pass with refactored response