use transaction always when saving modules