Original author: Ulf Wiger <ulf.wiger@erlang-solutions.com> 2009