make public API more flexibe by accepting Bytes arguments AND String arguments
fix 2 issues with ArgumentError usage