todos: make root page reads async