refactored client request + minor polishing + cleanup