implement libi0 interfaces