This means when a new data-type is returned it will use the same instance as the previously created one (if it exists).