Creating abstract async task framework.