Zarkith's changes.
Refactoring.
Another refactoring.
Refactoring and code commenting.
Added more maps!