improved lvalue recognition