another version of find-free-block function