A significant re-write of the 'view' class - it's mostly in a stable state, with a couple small things missing or untested