Cleanups and Memory Leaks

- fix memory leaks caused by not unregistering event listeners
- clean up loops using underscore.js - map and each