Exchange-correlation functional design