canceling and it's correct handling