make sure __len__ always returns >= 0