Refactor to remove save arg

This is not complete yet. Don't merge just yet.