Author: Guido Wesdorp (guido_w@infrae.com) Contributions from: - Roman Joost (roman@infrae.com)