Total rewrite to use a tree data structure instead of a flattened list.
Cleaner! Less special casing and pass throughs!
Merge pull request #2 from liamliwanagburke/treestyle

Total rewrite to use a tree data structure instead of a flattened list.