added return value for cancel()