agressive refactoring of objectcontext to figure out a sensible API