added a load of strategies to support IoC and async.