Intermetallic compounds principles and practice