Introdude ItemTransaction to capsulate all operations of all counts. This makes it easy to fix all existing bugs and prepares us for the new feature