revert to recursive async runner in order to run sequencially
added json reporter and made it easy to consume