Allow interfaces and abstract classes to be filled using user-specified concrete classes