added ByteString version of first exercise