Updated and beautified.