cleanup
basic collect { .. } intf
subst and rewrites for collect