+ Modified inferComponentProperties with perhaps a more elegant
implementation