add confirm and cancel and overwrite some methods