merged all changes by Sebastian Weitmann