def __init__(self, polygon_file, bigram_file):
        super(LetterboardInterface, self).__init__(polygon_file)

        self.sound_client = SoundClient()

        self.letter_boxes = [
            'abc', 'def', 'ghi', 'jkl', 'mno', 'pqr', 'stuv', 'wxyz'
        ]

        self.choice_boxes = []
        for i in xrange(1, 7):
            self.choice_boxes.append(self.polygons['choice%s' % i])

        self.predictor = Predictor(
            bigram_file, dict(zip(self.letter_boxes, self.letter_boxes)))
        for box in self.letter_boxes:
            self.register_callback(box, self.letter_cb)

        for box in self.choice_boxes:
            self.register_callback(box.id, self.choice_cb)
            box.name = ''

        self.register_callback('sent', self.sent_cb)

        self.register_callback('delword', self.delword)
        self.register_callback('delletter', self.delletter)

        self.polygons['sent'].name = ''