service.go needs refacotring