First commit of my changes, Shell interaction, user commands enum, validation and user messages.