- Enforce contract between taskComponents and an abstract taskComponent base class. - DRY taskComponent-code by centralizing commonly used functions into base class.