final refactor pending. Needs adapter and async tasks changes