Das ist besser.
Ich hab mir erlaubt mal ein bisschen in deinem Code rumzupfuschen
Alle Änderungen die ich gemacht hab sind mit
// ***
markiert und anschließend kurz erklärt. Du findest die Änderungen am einfachsten indem du nach *** suchen lässt.
Aber sieht schon ganz gut aus, soweit.