use self.parse instead of just parse