massively updated using collections instead of lists and such, and implemented the shoe