public List<Entity> getEntitiesContaining(Class<?>... componentClassList) {
		List<Entity> foundEntityList = new LinkedList<Entity>();
		// Iterate all 'possible' entity lists
		entityIteration: for (Entity entity : entityList) {
			// get the components owned by that entity
			for (Class<?> componentClass : componentClassList) {
				if (getComponentFast(componentClass, entity) == null) {
					continue entityIteration;
				}
			}
			// If we've reached this point, the entity contained all of the
			// required components
			foundEntityList.add(entity);
		}

		return foundEntityList;
	}