What is the purpose of this? Why do we need to subclass Map?