Ported over a large number of chages from the roi module, far to many to review.

bin/simple100.py (a new top-level script) confirms the changes are working as expected, as least on the surface.