moved stuff around, added support for scoping and symbol tables