char[] instead of byte[] to support unicode