Should this method be wrapped in a transaction?  If one of these save operations fails, I expect we'd want to roll back all of them.