overload save! method