Use generic task interface