use llambda to solve the this binding bug for props
style revisit
style backward compatibility