test refactoring, and add several more tests.  Also slight name
refactoring in the model and use tuples instead of list for convenience
indexes