refactored GUI

> added comments for public methods
> fixed multiple dialog issue #158
> added a Font class, for all fonts
> added a class for all listeners