What's the value of factoring the factory into an interface here? Where else are you expecting to see this used?