Added abstract Server and Client class to make implementing easier.