Use environment semantics, much simpler