added basic variable/ID support. needs more testing