reimplemented Signal structre