put loading page into it's own component