Split Listener out into its own class
Some typos, move gui update into event