Lots of javadoc commenting (whole main package, half of gui package)