combined client and server