improved some stuff here and there - still need to use JViewport to make it pretty