refaktorisiert, kommentare, code aufgeräumt