adding PerfectSquare