An attributed variable based approach
Final simplified API?
Merge remote-tracking branch 'jan/copy'
Minor changes
ADDED: refactor_context/2 and updated rename_variable/3.
Solved conflicts while merging