Added ability for recursive variables
Added tests