Refactored Request typeclass and it's instances.