Updated and reorganized.