Much better interface now, but not yet tested.