Added several features, split some functions out to separate classes.  Improved menu