async is close to working, merging latest changes tho
fixed conflicts