#4137 Restructure to DI