added provide self.version