code: public void readConfig(Reader reader) throws IOException {
  		try {
  			XMLStreamReader xr = XMLInputFactory.newInstance().createXMLStreamReader(reader);
  			try {
  				while (!xr.isStartElement()) {
  					xr.next();
  				}
  				processStartElement(xr, "simon-configuration");
  				while (true) {
  					if (isStartTag(xr, "callback")) {
  						manager.callback().addCallback(processCallback(xr));
  					} else if (isStartTag(xr, "filter-callback")) {
  						manager.callback().addCallback(processFilterCallback(xr));
  					} else if (isStartTag(xr, "simon")) {
  						processSimon(xr);
  					} else {
  						break;
  					}
  				}
  				assertEndTag(xr, "simon-configuration");
  			} finally {
  				xr.close();
  			}
  		} catch (XMLStreamException e) {
  			manager.callback().onManagerWarning(null, e);
  		} catch (SimonException e) {
  			manager.callback().onManagerWarning(e.getMessage(), e);
  		}
  	}
docs: Reads config from provided buffered reader. Reader is not closed after this method finishes.
  
  @param reader reader containing configuration
  @throws IOException thrown if problem occurs while reading from the reader