Extensively revised and rewritten by Jim Larner based on the previous guide