update io and add sample