removed eager evaluation of function parameters