Different Map Types

Used Factory Pattern to be able to support different map types, and
implemented Safe and Hazardous Maps.