Broken up stuff. but asynch