@Override
    public long getEncodedLength () {
        long childLength = 0;

        for (final Map.Entry<String,Value<?>> me : value.entrySet()) {
            final byte[] bytes = me.getKey().getBytes(Bencode.UTF8);
            childLength += bytes.length + 2 + (long) Math.log10(bytes.length);
            childLength += me.getValue().getEncodedLength();
        }

        return childLength + 2;
    }