refactored the plot control builder to be a singleton and moved most of the methods to be private