worked on signal generation