Type hint for newInstanceArgs
Argument validation for getProperty and getProperties, better check for a constructor method
Pull the name from the trait rather than the rule