liblouis and liblouisxml are designed to bo used via function calls. The internals should not be the concern of the application. Hence, the UserData structure would not be a good basis for a Python class. xml2brl does use it. Such use is only safh for a developer who is very familiar with the structure. It is not necessary to call lbx_initialize unless you want the special features which it provides, such as designating a log file and a configuration string. I like the idea of having table file names contain the language information. That is the case with many tables now. However, the present file names are all over the map. This is an exampple of the danger of rushing into things. Changing them now could cause problems for users. I do not think a new API is needed. The approach I suggested in an earlier message is much simpler and more flexible. We do need to retain the flexibility of liblouis and liblouisxml. Calling the libraries directly from an application is of course the most efficient. It is the way to go for a complex apflication. However, xml2brl has a lot of command-line options that are useful, say in a php application. John -- My websites: GodTouches Digital Ministry, Inc. http://www.godtouches.org Abilitiessoft, Inc. http://www.abilitiessoft.com Location: Madison, WI, USA For a description of the software and to download it go to http://www.jjb-software.com