more stuff! and recursion! and recursion!