added protocol class dealing with stdIO