'Use ``self._readings`` to construct a value for ``self._threads``
and use the model builder to construct a value for ``self._filtered_threads``'

def _construct_threads(self):

    thread_list = [[]]
    for sid in sorted(self._readings):
        thread_list = self.multiply(thread_list, sorted(self._readings[sid]))
    self._threads = dict([(('d%s' % tid), thread) for (tid, thread) in enumerate(thread_list)])
    self._filtered_threads = {}
    consistency_checked = self._check_consistency(self._threads)
    for (tid, thread) in self._threads.items():
        if ((tid, True) in consistency_checked):
            self._filtered_threads[tid] = thread
