class BytesValue {

  @Override
  public boolean equals(final Object obj) {
    if (null == obj) {
      return false;
    }
    if (!obj.getClass().equals(getClass())) {
      return false;
    }
    final BytesValue other = (BytesValue) obj;
    return Arrays.equals(this.value, other.value);
  }

  public  BytesValue(final byte[] bytes);
  public  BytesValue(final String encoded, final Decoder decoder);

}