separate data and commit