def start(self):
		""" :meth:`WStoppableTask.start` implementation that creates new thread
		"""

		start_event = self.start_event()
		stop_event = self.stop_event()
		ready_event = self.ready_event()

		def thread_target():
			try:
				start_event.set()
				self.thread_started()
				if ready_event is not None:
					ready_event.set()
			except Exception as e:
				self.exception_event().set()
				self.thread_exception(e)

		if self.__thread is None:
			if stop_event is not None:
				stop_event.clear()

			if ready_event is not None:
				ready_event.clear()

			self.exception_event().clear()

			self.__thread = Thread(target=thread_target, name=self.thread_name())
			self.__thread.start()