Updated and cleaned.