Copyright by Andreas Haack(c) 2009