change to use signal