huge overhaul of both the main class + pushState module