better error, and some refactoring
correct transaction with seq of errors