going async from view controller to prevent blocking of UI