(c) 2007-2019 by T. Schneider