Improved feature detection, and give users better errors about all they things they are missing.