Transitions

hashchange will come back in a follow up PR.