added signals stuff