conver to async events; fix fallout from it