marked areas that need work, minor cleanup
further refactoring Setup