Solution by librasteve.