ensure that a new instance is returned