Fix #45 - update addMapListenerOnce to fix memory leak