Map refactor

Lets bring this thing up the branches/forks!