private void validate() {
        if ( ( getPresentCount() != COUNT_DEFAULT ) && ( getPresentCharacters().size() > 0 )
                && ( getPresentCount() != getPresentCharacters().size() ) ) {
            throw new IllegalStateException( "present characters size and count are unequal" );
        }
        if ( ( getGainedCount() != COUNT_DEFAULT ) && ( getGainedCharacters().size() > 0 )
                && ( getGainedCount() != getGainedCharacters().size() ) ) {
            throw new IllegalStateException( "gained characters size and count are unequal" );
        }
        if ( ( getLostCount() != COUNT_DEFAULT ) && ( getLostCharacters().size() > 0 )
                && ( getLostCount() != getLostCharacters().size() ) ) {
            throw new IllegalStateException( "lost characters size and count are unequal" );
        }
    }