Use method modifiers instead of separate methods

This uses method modifiers to make accessors lvalue instead of installing extra methods to wrap.  This simplifies the code a bit.  It also includes some extra tests.