make barcode optional