implement client for user commands