copyright (c) 2003 Riccardo Gerosa (h3)