refactor, add help, save, load, and quit functionality