public 
    void removeEntity( final long someId ) 
    		throws NoSuchEntityException {
        //
        DataCore db = _dataCenter.getDataCore();

        //if there is no entity with the given id
        if( ! db.getEntity_Data_Table().containsKey( someId ) ) {
            //throw an exception
            throw new NoSuchEntityException( someId );
        }

        //iterate over the list of data types registered for this entity 
        for( Map.Entry<Class<? extends Data>, Data> entry :
                db.getEntity_Data_Table().get( someId ).entrySet() ) {
            //remove all the the entity in all data type lists
            db.getData_Entity_Table()
              .get( entry.getKey() )
              .remove( someId );
        }

        //remove all registered data of the entity
        db.getEntity_Data_Table().remove( someId );

        //remove the name of the entity
        db.getNameEntityTable().remove( db.getEntityNameTable().get( someId ) );
        db.getEntityNameTable().remove( someId );

        //free the id used bys the entity
        freeId( someId );        
        
         //decrement the number of entities registered
        db.setEntityCounter( db.getEntityCounter() - 1 );

        //invoke on removed event
        _dataCenter.onEntityRemoved( someId );
    }