added exception handleing for bad user funcs