Updated to include Alexander Neundorf's recommendations