refactor VariableReference into ReferenceExpression
add rtl method calls