add tests for position=, restructure position accessors