Refactoring issues

ContactList, Client and Contact should be implemented somehow like this: