added variable scope
added new type of variable store to handle function scopes
made nodes evaluate on accessing value instead of explicitly
made functions work