...
making it work again + refactoring...