Title component split out, made generation of view model async