You should get great results with Fredo6's Tools on Surface and JointPushPull.