add savable mixin