public void removeEntity(Entity entity) {
		// Delete any components owned by it too
		List<IComponent> entityComponentList = entity.getAllComponents();
		for (IComponent IComponent : entityComponentList) {
			// Get the class of the component
			Class<?> componentClass = IComponent.getClass();
			/*
			 * Remove the entity that is stored in the map of component's
			 * classes to entities and their components. It is possible that we
			 * could check whether or not
			 * registeredComponents.get(componentClass) is now of size 0, and we
			 * could set it the entire value to null for garbage collection, but
			 * this may cause more overhead than benefit in the long run, so we
			 * ONLY remove the entity and not the HashMap found with it
			 */
			registeredComponents.get(componentClass).remove(entity);
		}

		// Once all components have been deleted, we can delete it from our
		// entity list
		entityList.remove(entity);

		// Make an explicit call to refresh any system's entityLists, so we
		// don't get NullPointExceptions being thrown within our systems
		refreshEntityLists();
	}