added cancel method