refactored to use ADP's map lib