add deferred evaluation