NOTE: This version uses nothing outside of core and requires no special accessors, however it uses `tie` which is slow, but with some work this can perhaps be made into something real.