handle signal flow a little better