add catch, map except effect and convenience functions