added async, moved logic from findItemInCollection