Let's add a fit() method which calls `train_smo_1998`:

```
def fit(self, data, labels, method='smo_1998'):
  if method == 'smo_1998':
    self.train_smo_1998(data, labels)
  elif ..
  else: assert False, 'Invalid training method %s' % method
```