You're right. I sometimes forget PHP really passes a pointer to function when it seems passes an object. It's the same instance of ```File``` object. However, I think it would be good to somehow make sure the param file object is of correct File subclass, thus in practice it must be constructed using ```createFile``` method. To ensure maximum stability, we must ensure ```writeFile``` of GridFS adapter always returns ```GridFSFile```, not just any ```File```