cleaned up signal constructors