Factor out SaveStack mixin