https://dev.to/simongreennet/common-squares-31do