added pattern definitions
added attribute deref
added for loops
added if and unless, but some weirdness with the blocks