Complete refactor

Okay, diesmal hab ich an alles gedacht, glaube ich.