Better save()

Save() replaces the object for a newer (better) object that we handle. Sometimes the reference is not well handled, so we keep a reference to it
Don't save twice

Fixed reference issues