async ops wip - needs testing