Added Perform_Task_With method to ApplicationTask to make tasks reusable and avoid code repetition