public void loadPropertiesForClasses(LinkedList<String> classes){
        try{
            Properties props = new Properties();
            String softwareProperties = System.getProperty(SOFTWARE_PROPERTIES);
            props.load(new FileInputStream(softwareProperties != null ? softwareProperties : HARD_CODED_SOFTWARE_PROPERTIES));

            Set<String> propertyNames = props.stringPropertyNames();
            for(String name : propertyNames){
                // Load only properties that match this given class name
                if(name.indexOf('.') > -1){
                    if(classes.contains(name.substring(0, name.indexOf('.')))){
                        properties.put(name,props.getProperty(name));
                    }
                }
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }