Seperate out async task