added operators
uses map instead of unordered_map because it is easier to use