Developed by Philip Mayer <mayer@pst.ifi.lmu.de>
with contributions from Andreas Rogge-Solti 