Solution by James Smith