refactored JS to be namespaced
pre -history

need to change history support by making events update hash and
listener fire changes from there!