dont export a new object, let the user instantiate their own