Big refactoring changes and completed base setup for making issues #69 #70 #71 easy to complete