Client Refactor