refactor save methods to be internal to widgets