Additional callbacks + transactions
Factor out the common transactional logic