refactored client; added test for local move