Tests are passing. Need to test with some live maps and a few more bugs to work out here... (See Issues tracking)