typo: self.field should be self.widget