add + use ByteArraySource