return env from Runner#call

Slightly different implementation to #3, feels a bit more explicit and obvious as to what's going on when reading the source. Also has tests.