Implemented lots of methods.
Changed the response from an Eithter to a Response object.
Refactored the Case Classes.