Small refactor
Extract BartExectutor to interface incase people want to use it with IoC and mock it
Refactor to avoid recursive method
Fix failing async unit test (test was at fault, not code)
Mid refactor, would like to have a non-async decorated method for non-async version
Refactored BartCore method executing code for sync and async code into one method. Reaady for PR
Rename method to have slightly better names