Making TaskNotFoundException more informative by adding task name to exception object.
Set default value to taskName property.
Use exception instructor instead of factory method