change row io function to private
separate socket with fd