Added data structures, typeclasses, and some more modules