Make io_object_t base class rather than interface