add serve function