Refactored first half of saveTran