Only factory classes need to return a new instance