private void readBeamElement(Hashtable ht) throws Exception {
	String name = "";
	String typeId = "";
	String imageName = ""; 
	String beamImageName = ""; 
	String beamEndImageName = ""; 
	int range = 0;
	boolean requireWall = false;
	boolean scaleToWall = false;
	if (ht.get("RANGE") != null) range = Integer.parseInt((String) ht.get("RANGE"));

	if (ht.get("NAME") != null) 
	    name = ((String) ht.get("NAME")).replace('_' , ' ');;

	if (ht.get("TYPEID") != null) 
	    typeId = (String) ht.get("TYPEID");
	else
	    throw new Exception("No type ID");

	if (ht.get("BEAMIMAGE") != null) 
	    beamImageName = (String) ht.get("BEAMIMAGE");
	else
	    throw new Exception("No image");

	if (ht.get("BEAMENDIMAGE") != null) 
	    beamEndImageName = (String) ht.get("BEAMENDIMAGE");
	else
	    beamEndImageName = beamImageName;

	if (ht.get("IMAGE") != null) 
	    imageName = (String) ht.get("IMAGE");
	else
	    throw new Exception("No image");

	if (ht.get("REQUIREWALL") != null) 
	    requireWall = Integer.parseInt((String) ht.get("REQUIREWALL")) != 0;
	if (ht.get("SCALETOWALL") != null) 
	    scaleToWall = Integer.parseInt((String) ht.get("SCALETOWALL")) != 0;

	window.addElementFactory(new RRBEBeamElementFactory(typeId
							    , window
							    , name
							    , imageName
							    , beamImageName
							    , beamEndImageName
							    , range
							    , requireWall
							    , scaleToWall));
    }