refactor ThoughtBubble, see #26