protected void loadModules() {
        ConcurrentHashMap<String, String> inputProperties = configuration.filter("eva.modules");
        Iterator it = inputProperties.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry property = (Map.Entry) it.next();

            String key = (String) property.getKey();
            String val = (String) property.getValue();

            try {
                System.out.printf("Loading module:       [%s]\n", val);
                IModule module = (IModule) ClassLoader.load(val);
                System.out.printf("Booting module:       [%s]\n", val);
                module.boot();
                modules.put(key, module);
            } catch (Exception e) {
                System.err.printf("Unable to load class: [%s]\n", val);
                e.printStackTrace();
            }

            it.remove(); // avoids a ConcurrentModificationException
        }
    }