Rebuilt Brute_Force to check smaller chunks fed to a queue, chunk size varies dynamically with the length of the alphabet. Added a WorkUnit class as a container for whatever information needs to be passed. Used a similar method of mutiprocessing to the one I added to demoCrack3, automatically creates the right number of processes for the available processes. Using synchronized, shared variables to update counts and terminate computation when solution is found. Also, it is currently broken for key lengths shorter than 5, finds the solution but never terminates and the time and speed calculations fail. Also added simple methods to allow the class to be called from other sources (ie. a controller) and set class variables without direct user input. These methods are more or less untested. I have not yet tested the speed much, but a quick run on the terminal suggests it runs at similar speeds to demoCrack3's pycharm speeds in terms of hashes per second, it comes across our benchmark "aa9999" much faster, but that is a result of the smaller chunks since all processes are working from the start.