add some lambda abstraction in draft