procedure evaluation implemented and we also got recursion to work for free because of how we implemented environments