new: rewriting the library, adding XML