added (a start to) solution 17