this should be done in the service, not controller