Added command service client API, refactored some code into reusable traits