Adding Key, Val types, to make the code easier to read (and allow for a possible change later on).
Adding pretty print for data types.