Outsource logic

Ist zwar letzlich nicht das, was es werden sollte aber naja. Hab trotzdem mal die Methoden restrukturiert um da eine gewisse Ordnung rein zubekommen. Merge mal: ping @snowiow