working using signal