added variable assignment and recall, fix various bugs