extend objects without subclassing
a file-like class