edited, note that intro and prereqs are copypasta