changed everything to use maps, and added some more functionality. print summary functions and such