public List<Guitar> searchGuitar(GuitarSpec searchGuitarSpec ) {
	List<Guitar> matchingGuitars = new ArrayList<Guitar>();
	for (Iterator<Guitar> i = guitars.iterator() ; i.hasNext(); ) {
		Guitar guitar = (Guitar) i.next();
		// ignore serial number since its unique
		// igonre price since that's unique 
		GuitarSpec guitarSpec = guitar.getSpec();
		Builder builder  = searchGuitarSpec.getBuilder();
		if ((builder!= guitarSpec.getBuilder())){
			continue ;
		}
		
		String model = searchGuitarSpec.getModel().toLowerCase() ;
		if ((model!= null ) && (!model.equals(""))&& (!model.equals(guitarSpec.getModel().toLowerCase()))){
			continue ;
		}
		
		Type type = searchGuitarSpec.getType() ;
		if ((type!= guitarSpec.getType())){
			continue ;
		}
		
		Wood backWood  = searchGuitarSpec.getBackWood();
		if ((backWood!= guitarSpec.getBackWood())){
			continue ;
		}
		
		Wood topWood  = searchGuitarSpec.getTopWood();
		if ((topWood!= guitarSpec.getTopWood())){
			continue ;
		}
		matchingGuitars.add(guitar);
		
	}
	return matchingGuitars ;
}