4.1: For the batch file extension component, replace the Launcher package part with a thread pool.
4.2: Rewrite the calculator extension framework to use object pools. This means the Discovery package functionality and Launcher package functionality can be discarded and replaced with the new solution.
4.3: Rewrite the batch file extension to become a proxy to other extensions. The objective is to be able to specify a list of files, where the numbers are read in by the batch file extension and then stored in an array, which is then passed to the extension. Because the user is able to specify multiple batch files at a time, the batch file extension should use threads and object pools to manage the calculations.