Added support for recursive evaluation