require bytes to keep compatibility with < 4.02 (String.init too recent)