Added abstract base class thread