Added Response object and refactored others to use it.