Further tweaks to __getitem__, making error message clearer and order better