Removed some unnecessary abstraction (essentially changed 'Context' to
something resembling a struct). Changed all tabs to spaces of length 4.