Added abstract Client class