add df.residuals method; version bump