supports IO a type