various proc and exception handling