Added menu and refactored gui to OO style code