why ```tap``` ?