variable supported. refactoried

add variable support.
modelized