Cleaner: pass functions around instead of atoms + apply