moved single entry into context object
minor changes
separated keys from attributes, phase 1
minor changes
separate keys from attributes phase 2
separate keys from attributes, tests
separate keys from attributes, classes
removed readers
removed readers
optimising code