This allows external modules to add factory methods for implementations of this interface as extension functions of this companion object.