subclass BaseIO when overriding sync()