Copyright (c) 2007- Tatu Saloranta, tatu.saloranta@iki.fi