use save! to remain compatible with existing functionality