added welcome message, some empty helper methods, refactored executeCommand()
implemented helper methods for validation
added comments, put methods in a more logical order