Implementation using TAP and TPL framework