void onEntityChanged( final long someEntityId ) {
        //setup local variables
        List<Class<? extends Data>> processorInterstedDataList;
        long processorIdBuffer;
        boolean isInterested;
        int interestedProcessorCount;
        
        //retrieve all processors and a list with interested entities
        final TLongObjectMap<TLongList> processorIntrestedEntityTable =
                _dataCore.getProcessId_interestedEntity_Table();
        //retrieve all types of data the given entity holds
        final List<Class<? extends Data>> entityDataList =
                _entityMgr.getAllDataTypesFromEntity( someEntityId );

        
        //iterate over all lists of data types and the processors interested in them 
        for ( Map.Entry<List<Class<? extends Data>>, TLongList> entry :
              _dataCore.getData_InterestedProcessor_Table().entrySet() ) {
        	
            //a data type set
            processorInterstedDataList = entry.getKey();
            
            //number of processors interested in ^^
            interestedProcessorCount = entry.getValue().size();            
            //number of data types
            final int interestedDataCount = processorInterstedDataList.size();

            //iterate over all processors interested in the current data type set
            for ( int i = 0; i < interestedProcessorCount; ++i ) {
                //
                processorIdBuffer = entry.getValue().get( i );

                //determine if the processor is interested in the given entity
                isInterested = true;
                for ( int j = 0; j < interestedDataCount; ++j ) {
                    //if the entity is holding ALL data in which the processor is interested in
                	//isInterested is going to be true
                    isInterested &= entityDataList.contains( processorInterstedDataList.get( j ) );
                }

                //if the processor is interested in this entity
                if ( isInterested ) {
                    //add the id of the entity to the list of interested entites of the processor
                    processorIntrestedEntityTable.get( processorIdBuffer ).add( someEntityId );
                }
                //if the processor is not interested, but was befor
                else if ( processorIntrestedEntityTable.get( processorIdBuffer ).contains( someEntityId ) ) {
                    //remove the entity from the interest list
                    processorIntrestedEntityTable.get( processorIdBuffer ).remove( someEntityId );
                }
            }
        }
    }