splitting dispatcher into server/client, getting the client side working properly