added (a poor) solution 12