added square versions