Attempted to incorporate Alexander Neundorf's recommendations