Refactored client: more explicit return types. Implemented put method on
type. Refactored Tests.