private void loadCollisionLists(){
		try {
			final String PREFIX = "bin\\";
			final String SUFFIX = ".class";
			String pkgName = getClass().getPackage().getName();
			ArrayList<File> classFiles = FileFinder.getFiles(PREFIX + pkgName, SUFFIX);
			for (File file : classFiles){
				try {
					String packageLocation = file.toString().substring(PREFIX.length());
					packageLocation = packageLocation.replace('\\', '.');
					packageLocation = packageLocation.substring(0, packageLocation.length() - SUFFIX.length());

					Class<?> c = Class.forName(packageLocation);
					if (GameObject.class.isAssignableFrom(c)){// if c "instanceof" GameObject
						System.out.println("Loaded GameObject "+c.getSimpleName());

						//c.getDeclaredMethod("initializeCollisionGroups", null).invoke(null, null);//TODO figure out how to do this better, without reflection. Old TODO msg I don't understand anymore: why does it call the super static initializeCollisionGroups()???
						GameObject.initializeCollisionGroups((Class<? extends GameObject>) c);
					} else {
						System.out.println("Not a GameObject: "+c.getSimpleName());
					}
					
				} catch (ClassCastException ex){//for non-GameObjects, like Rooms
					System.out.println("*****************unable to cast");
				} catch (ClassNotFoundException ex) {
					ex.printStackTrace();
				} catch (Exception ex) {
					ex.printStackTrace();
				}
			}
		} catch (FileNotFoundException ex) {
			// TODO Auto-generated catch block
			ex.printStackTrace();
		}
	}