Prioritizing default constructors when available
Making sure that, in the absence of the default constructor, the constructor containing the right param types is being chosen.