use lambda for late evaluation of :application