square splitting method