move to explicit signals