public boolean remove(Attribute attribute) {
        if (attributes == null)
            return false;
        UUID uuid = attribute.getUUID();

        for (Iterator<Attribute> it = values().iterator(); it.hasNext(); ) {
            if (Objects.equal(it.next().getUUID(), uuid)) {
                it.remove();

                // Last removed attribute?
                if (size() == 0) {
                    removeAttributes();
                }
                return true;
            }
        }
        return false;
    }