updated
updated tap algo