work. please note, that I would do quite some things differently nowadays. I home to get those things in via refactoring