gives redundant answers, but otherwise correct