general task solution