Complete code refactor

Soo, diesmal sollte wirklich alles geklappt haben. Commit description oder diff lesen.