needs $q injection