timeout function
add item done back