refactor application structure and work out kinks with GUI