improvements to Signal class