Business logic fine tuning

Creating this pull request as I make changes to the core business logic in advance of enabling multithreading.