add expression visitor
change Specification as Expression