Interface for configuring views

And lots of incidental changes to data structures (passing pointers
rather than copies)