still fixing pre_signal function