Rewritten to utilize hashmaps instead of a custom class. Introduced
static Tools class for generic methods