add signals and events