Moves several require statements around so they are where they're needed
Makes expressions always return strings, not only for helpers
Adds support for contexts