Add start of OO interface
Cleanup
Add some iterators
Find proper subclass for dataset
Note