added loading indicator, refactored hash change handling, added ready states