add set_signal()