minor fixes, add all_of() and some needed infrastructure