use iteratee instead of checkFunc