add io protection