ASTools currently suffers from tight coupling, mixing of API and non-API classes, an API that is not clear, a very long unit test run, and other symptoms which stem from the above problems. Several newer use-cases are impossible to solve without making the problem worse.
To solve these issues, ASTools needs to have its major functionality split up and separated. The API for each system needs to be clearly apparent and easy to use, from both core, ui, and other consumers. In general, if UI classes are not using the API and are reaching in to internal classes, then the API is insufficient and needs to be cleaned up.
This large-scale refactor will focus first on the deploy-only server as an example and can eventually be (easily) extended to the other server types.