Correct borrowing of ~objects to account for possibility of no header,
correct cleanup of self value in method calls