add Client class
refactor with new methods