Removed pipeline, added error position, added commutativity