finished difference-of-squares