combine client and server together