signals are functions