Introduced ProgramOptions class that allows me to NOT have to pass user specified options to each task. Also makes dependency injection a bit more straight forward.