Learn barcode usage module

implementation for issue #45