First version untested, up to question 4.6.