call self.finish()