transaction and exception handling improvents