Bug Fix: Unable to select a single character selection
New Feature: Undo command
Some minor code cleanup and optimization