made #descendents more efficient
added concepts of scope + identifiers
li'l refactoring