Initial refactoring to move some common functionality into a parent class.
Merge branch 'master' of github.com:iiordanov/remote-desktop-clients