Refactor to remove save arg

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