working on async model