Add Client::getCommandForDeskClass()
Add AbstractModel and model factory