ugly, but the story works