Solution by Ben Bullock.