added further GUI funtionalities and introduced multiple classes