Add new base class for typical async task pattern