Implementing different types of maps