Add some supporting data structures
Updated documentation