small cleanup
pass a context object around instead of creating transient fields in model objects