very long and useful guide