diff --git a/EFI-OpenCore/README.md b/EFI-OpenCore/README.md
index e6876f3..5f143cc 100644
--- a/EFI-OpenCore/README.md
+++ b/EFI-OpenCore/README.md
@@ -15,11 +15,15 @@ SystemSerialNumber: Can be generated with MacSerial or use pervious from Clover'
CPUFriendDataProvider: Can be generated with [CPUFriendFriend](https://github.com/corpnewt/CPUFriendFriend_ or [one-key-cpufriend](https://github.com/stevezhengshiqi/one-key-cpufriend). Even if you have the same CPU as me, you may prefer a different Energy Performance Preference (EPP) so do generate your own CPUFriendDataProvider. This is furhtermore important if you have a different CPU than me.
-## Important Note:
+> ## Important Note:
Unlike Clover, where SSDT patches are only being applied when booting macOS. OpenCore will apply SSDT patches regardless of the operating system. This is critical when multi-booting, since Windows and Linux do not need the additional patches that macOS does. In many cases, if Windows/Linux fails to boot under OpenCore, it is likely that your macOS intended SSDT patch(s) is being applied universally. To prevent OpenCore from doing this, it is important that your SSDT patches specify its intended OS, which in our case is "Darwin."
See highlighted example:
![OpenCore SSDT patching notice](https://raw.githubusercontent.com/tylernguyen/x1c6-hackintosh/master/assets/img/OpenCore%20SSDT%20patching%20notice.png)
-## Checking your OpenCore config.plist
-It is important to keep your OpenCore config.plist properly up-to-spec, as OpenCore configurations tend to change accordingly with OpenCore versions. A good resource to check your config plist is https://opencore.slowgeek.com/.
\ No newline at end of file
+> ## Checking your OpenCore config.plist
+It is important to keep your OpenCore config.plist properly up-to-spec, as OpenCore configurations tend to change accordingly with OpenCore versions. A good resource to check your config plist is https://opencore.slowgeek.com/.
+
+> ## Updating:
+
+To update your OpenCore folder to my current version, simply backup your PlatformInfo information and move it to the new OpenCore config. Keep in mind that, depending on your setup, you may wish to keep other settings you've made so make sure to note your OpenCore.plist changes as you make them.
\ No newline at end of file
diff --git a/README.md b/README.md
index fb2e5f5..47ba599 100644
--- a/README.md
+++ b/README.md
@@ -17,158 +17,20 @@
`Lastly, if my work here helped you. Please consider donating, it would mean a lot to me.`
-
- CHANGELOG
+> ## Update
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
-
-
- 2020-3-29
-
-### Added
+##### Recent | [Changelog Archive](https://github.com/tylernguyen/x1c6-hackintosh/docs/CHANGELOG.md)
+> ### 2020-3-29
+#### Added
SSDT-ALS0 hotpatch for faking ambient light sensor ALS0 per Catalina's brightness preservation.
SSDT-GPRW hotpatching for fixing instant wake (0D/6D patch).
-### Changed
+#### Changed
SSDT-Keyboard with the exception of F7 and F12, now maps all hotkeys to a Fn value that can be remapped within macOS. In addition, PrtSc is now remapped to F13.
SSDT-PLNF to a cleaner version.
Similarly, battery patch has been simplified.
-### Deprecated
-
-### Removed
+#### Removed
Some unused patches within OpenCore config.plist has now been removed.
-
-
-
- 2019-12-22
-
-### Added
-Project website: https://tylernguyen.github.io/x1c6-hackintosh/
-ACPI dump for `BIOS-v1.43`.
-CHANGELOG.md to keep track of the project's developments.
-OpenCore bootloader, version `0.5.3`.
-Better SSDT patching with hotpatches under `patches`. Making sure to read `patches/README`.
-### Changed
-Switched completely to hotpatching through OpenCore. Credits to [daliansky](https://github.com/daliansky) and [jsassu20](https://github.com/jsassu20).
-Updated main README, made it look more visually appealing and organized.
-### Deprecated
-Clover bootloader. Clover r5100 is the last version I used on this machine. Moving forward, OpenCore is my preferred bootloader. See `EFI-Clover/README.md`.
-Reorganized folder/project structure. Setup instructions and references now under `docs`.
-### Removed
-Old static patches.
-Old IORegistryExplorer dump.
-
-
-
-
-
- ACPI Patches
-
-# Hotpatching Notes
-
-## **Credits and a huge thank you to [daliansky](https://github.com/daliansky) for the great work and documentation, as well as to [jsassu20](https://github.com/jsassu20) for the excellent translations.**
-
-## Some patches here may be unused. Refer to the current OpenCore-EFI folder to see which one I am currently using.
-
-## Some Thinkpad machines are `LPC` and some are` LPCB`. Please examine your own DSDT and modify patches as needed.
-
-> ### SSDT-OCBAT0-TP_re80_tx70-80_x1c5th-6th_s12017_p51
-**Need `OpenCore Patches/ TP Battery Basic Rename.plist`** if OpenCore. `preferred`
-**Need `OpenCore Patches/ TP battery Mutex is set to 0 and renamed.plist`** if OpenCore. `preferred`
-
-- Single battery system: only `BAT0` in ACPI, no` BAT1`.
-
-> ### SSDT-PLUG-_PR.PR00
-Why?: `Processor` in DSDT
-```
- Scope (\_PR)
- {
- Processor (PR00, 0x01, 0x00001810, 0x06){}
- Processor (PR01, 0x02, 0x00001810, 0x06){}
- Processor (PR02, 0x03, 0x00001810, 0x06){}
- Processor (PR03, 0x04, 0x00001810, 0x06){}
- Processor (PR04, 0x05, 0x00001810, 0x06){}
- Processor (PR05, 0x06, 0x00001810, 0x06){}
- Processor (PR06, 0x07, 0x00001810, 0x06){}
- Processor (PR07, 0x08, 0x00001810, 0x06){}
- Processor (PR08, 0x09, 0x00001810, 0x06){}
- Processor (PR09, 0x0A, 0x00001810, 0x06){}
- Processor (PR10, 0x0B, 0x00001810, 0x06){}
- Processor (PR11, 0x0C, 0x00001810, 0x06){}
- Processor (PR12, 0x0D, 0x00001810, 0x06){}
- Processor (PR13, 0x0E, 0x00001810, 0x06){}
- Processor (PR14, 0x0F, 0x00001810, 0x06){}
- Processor (PR15, 0x10, 0x00001810, 0x06){}
- }
-```
-
-> ### SSDT-PNLF-SKL_KBL
-Why?: `Skylake/ KabyLake/ KabyLake-R`.
-Used in conjufction with `WhateverGreen.kext`
-
-> ### SSDT-HPET_RTC_TIMR-fix
-- This patch cannot be used with the following patches:
- - ***SSDT-RTC_Y-AWAC_N*** of the "Preset Variable Method"
- - OC official ***SSDT-AWAC***
- - "Counterfeit Device" or OC official ***SSDT-RTC0***
- - ***SSDT-RTC0-NoFlags for CMOS Reset Patch***
-
-> ### SSDT-Keyboard
-Keyboard path is `\ _SB.PCI0.LPCB.KBD`.
-- Remap 1:
-- Remap 2:
-- Remap 3:
-- Remap 4: F8 (Network) to F18
-- Remap 5: F9 (Settings) to F19
-- Remap 6: F10 (Bluetooth) to F20
-- Remap 7: F11 (Keyboard) to F17
-- Remap 8:
-- Remap 9:
-- Remap 10: PrtSc to F13
-
-> ### SSDT-PTSWAK
-### SSDT-EXT3-LedReset-TP
-### SSDT-EXT4-WakeScreen
-**Need `OpenCore Patches/ Comprehensive Patch Changed Its Name To.plist`** if OpenCore. `preferred`
-**Need `Clover Patches/ Comprehensive Patch Changed Its Name To.plist`** if Clover.
-Look up `_PTS` and `_WAK` and only apply the corresponding patches:
-`_PTS` is `NotSerialized` in my DSDT
-`_WAK` is `Serialized` in my DSDT
-
-- ***SSDT-PTSWAK*** —— Comprehensive Patch。
-
-- ***SSDT-EXT3-LedReset-TP*** — `EXT3` extension patch. Solve the problem that the breathing light does not return to normal after the TP machine wakes up。
-
-- ***SSDT-EXT4-WakeScreen*** — `EXT4` extension patch. Solve the problem that some machines need to press any key to light up the screen after waking up. When using, you should inquire whether the `PNP0C0D` device name and path already exist in the patch file, such as` _SB.PCI0.LPCB.LID0`. If not, add it yourself.
-
-> ### SSDT-SBUS
-Why?: `0x001F0004` under Device (SBUS).
-
-> ### SSDT-DMAC
-Why?: `PNP0200` is missing in DSDT.
-
-> ### SSDT-MCHC
-Why?: `MCHC` is missing in DSDT.
-
-> ### SSDT-PMCR
-Why?: `PMCR`,` APP9876` missing in DSDT.
-
-> ### SSDT-PWRB
-Why?: `PNP0C0C` missing in DSDT.
-
-> ### SSDT-ALS0
-Why?: `ACPI0008` missing in DSDT.
-
-> ### SSDT-GPRW
-Why?: Fix instant wake by hooking GPRW (0D/6D Patch)
-
-
-
-
- Getting Started
-
> ## SUMMARY:
| Fully functional | Non-functional | Semi-functional. Additional pulls needed and welcomed. |
@@ -241,7 +103,6 @@ Create a pull request if you like to be added, final decision at my discreation.
* Undervolt the machine with [Volta](https://volta.garymathews.com/).
* If you must dual boot with Windows or Linux, I advise against paritition. What I recommend, instead, is getting a second compatible hard drive that fits in the WWAN card slot (I have the WDC PC SN520 NVMe 2242), install Windows/Linux onto that drive. Finally, boot into it with Clover or OpenCore.
* If your laptop did not come with WWAN, you can purchase additional antennas to add to your laptop. This is useful when using Wifi/Bluetooth cards that have 3 antennas.
-
> ## CONTACT:
https://tylerspaper.com/contact
diff --git a/docs/4_README-ACPIpatching.md b/docs/4_README-ACPIpatching.md
index 623b934..01f64c5 100644
--- a/docs/4_README-ACPIpatching.md
+++ b/docs/4_README-ACPIpatching.md
@@ -1,8 +1,8 @@
> ## ACPI Patching:
1. Download and install [MaciASL](https://github.com/acidanthera/MaciASL/releases) if you do not have it already.
-2. During CLOVER boot screen, press Fn+F4, or just F4 to dump original ACPI tables to EFI/CLOVER/ACPI/origin/
-3. Copy files that begin with DSDT and SSDT to Desktop.
-4. Open the contents of MaciASL and look for iasl-stable, copy it to the same directory as the dumped ACPI files. In Terminal, disassemble the copied ACPI tables with "iasl-stable -dl DSDT.aml SSDT*.aml".
-5. Refer to `patches` and `patches/README.md`, most of my compiled hotpatches and can be copied straight to your setup. However, some patches may require certain directories or variables to be changed depending on your hardware (examine your own disasemebled DSDT). For these, edit the .dsl patch files. Also, note that some SSDT patches also require accompanying OpenCore/ Clover ACPI patches to work.
+2. Dump your original ACPI tables. There are a number of ways to do this, using Clover, Hackintool, Linux.
+3. In Terminal, disassemble the copied ACPI tables with "iasl-stable -dl DSDT.aml". For our purpose, the only file that really matters is DSDT.dsl
+- Your DSDT file will be used as a reference table in determining that needs to be patched and what patches need to be added.
+4. Refer to `PATCHES.md`, most of my compiled hotpatches and can be copied straight to your setup. However, some patches may require certain directories or variables to be changed depending on your hardware (examine your own disasemebled DSDT). For these, edit the .dsl patch files. Also, note that some SSDT patches also require accompanying OpenCore/ Clover ACPI patches to work.
Special thanks to [daliansky](https://github.com/daliansky) and [jsassu20](https://github.com/jsassu20) for their work.
\ No newline at end of file
diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md
new file mode 100644
index 0000000..0dff450
--- /dev/null
+++ b/docs/CHANGELOG.md
@@ -0,0 +1,32 @@
+# CHANGELOG
+All notable changes to this project will be documented in this file.
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
+
+> ### 2020-3-29
+#### Added
+SSDT-ALS0 hotpatch for faking ambient light sensor ALS0 per Catalina's brightness preservation.
+SSDT-GPRW hotpatching for fixing instant wake (0D/6D patch).
+#### Changed
+SSDT-Keyboard with the exception of F7 and F12, now maps all hotkeys to a Fn value that can be remapped within macOS. In addition, PrtSc is now remapped to F13.
+SSDT-PLNF to a cleaner version.
+Similarly, battery patch has been simplified.
+#### Removed
+Some unused patches within OpenCore config.plist has now been removed.
+
+
+> ### 2019-12-22
+#### Added
+Project website: https://tylernguyen.github.io/x1c6-hackintosh/
+ACPI dump for `BIOS-v1.43`.
+CHANGELOG.md to keep track of the project's developments.
+OpenCore bootloader, version `0.5.3`.
+Better SSDT patching with hotpatches under `patches`. Making sure to read `patches/README`.
+#### Changed
+Switched completely to hotpatching through OpenCore. Credits to [daliansky](https://github.com/daliansky) and [jsassu20](https://github.com/jsassu20).
+Updated main README, made it look more visually appealing and organized.
+#### Deprecated
+Clover bootloader. Clover r5100 is the last version I used on this machine. Moving forward, OpenCore is my preferred bootloader. See `EFI-Clover/README.md`.
+Reorganized folder/project structure. Setup instructions and references now under `docs`.
+#### Removed
+Old static patches.
+Old IORegistryExplorer dump.
\ No newline at end of file
diff --git a/docs/PATCHES.md b/docs/PATCHES.md
new file mode 100644
index 0000000..4e7af37
--- /dev/null
+++ b/docs/PATCHES.md
@@ -0,0 +1,97 @@
+# Hotpatching Notes
+
+## **Credits and a huge thank you to [daliansky](https://github.com/daliansky) for the great work and documentation, as well as to [jsassu20](https://github.com/jsassu20) for the excellent translations.**
+
+## Some patches here may be unused. Refer to the current OpenCore-EFI folder to see which one I am currently using.
+
+## Some Thinkpad machines are `LPC` and some are` LPCB`. Please examine your own DSDT and modify patches as needed.
+
+> ### SSDT-OCBAT0-TP_tx80_x1c6th
+**Need `OpenCore Patches/ TP Battery Basic Rename.plist`** if OpenCore. `preferred`
+**Need `OpenCore Patches/ TP battery Mutex is set to 0 and renamed.plist`** if OpenCore. `preferred`
+
+- Single battery system: only `BAT0` in ACPI, no` BAT1`.
+
+> ### SSDT-PLUG-_PR.PR00
+Why?: `Processor` in DSDT
+```
+ Scope (\_PR)
+ {
+ Processor (PR00, 0x01, 0x00001810, 0x06){}
+ Processor (PR01, 0x02, 0x00001810, 0x06){}
+ Processor (PR02, 0x03, 0x00001810, 0x06){}
+ Processor (PR03, 0x04, 0x00001810, 0x06){}
+ Processor (PR04, 0x05, 0x00001810, 0x06){}
+ Processor (PR05, 0x06, 0x00001810, 0x06){}
+ Processor (PR06, 0x07, 0x00001810, 0x06){}
+ Processor (PR07, 0x08, 0x00001810, 0x06){}
+ Processor (PR08, 0x09, 0x00001810, 0x06){}
+ Processor (PR09, 0x0A, 0x00001810, 0x06){}
+ Processor (PR10, 0x0B, 0x00001810, 0x06){}
+ Processor (PR11, 0x0C, 0x00001810, 0x06){}
+ Processor (PR12, 0x0D, 0x00001810, 0x06){}
+ Processor (PR13, 0x0E, 0x00001810, 0x06){}
+ Processor (PR14, 0x0F, 0x00001810, 0x06){}
+ Processor (PR15, 0x10, 0x00001810, 0x06){}
+ }
+```
+
+> ### SSDT-PNLF-SKL_KBL
+Why?: `Skylake/ KabyLake/ KabyLake-R`.
+Used in conjufction with `WhateverGreen.kext`
+
+> ### SSDT-HPET_RTC_TIMR-fix
+- This patch cannot be used with the following patches:
+ - ***SSDT-RTC_Y-AWAC_N*** of the "Preset Variable Method"
+ - OC official ***SSDT-AWAC***
+ - "Counterfeit Device" or OC official ***SSDT-RTC0***
+ - ***SSDT-RTC0-NoFlags for CMOS Reset Patch***
+
+> ### SSDT-Keyboard
+Keyboard path is `\ _SB.PCI0.LPCB.KBD`.
+- Remap 1:
+- Remap 2:
+- Remap 3:
+- Remap 4: F8 (Network) to F18
+- Remap 5: F9 (Settings) to F19
+- Remap 6: F10 (Bluetooth) to F20
+- Remap 7: F11 (Keyboard) to F17
+- Remap 8:
+- Remap 9:
+- Remap 10: PrtSc to F13
+
+> ### SSDT-PTSWAK
+### SSDT-EXT3-LedReset-TP
+### SSDT-EXT4-WakeScreen
+**Need `OpenCore Patches/ Comprehensive Patch Changed Its Name To.plist`** if OpenCore. `preferred`
+**Need `Clover Patches/ Comprehensive Patch Changed Its Name To.plist`** if Clover.
+Look up `_PTS` and `_WAK` and only apply the corresponding patches:
+`_PTS` is `NotSerialized` in my DSDT
+`_WAK` is `Serialized` in my DSDT
+
+- ***SSDT-PTSWAK*** —— Comprehensive Patch。
+
+- ***SSDT-EXT3-LedReset-TP*** — `EXT3` extension patch. Solve the problem that the breathing light does not return to normal after the TP machine wakes up。
+
+- ***SSDT-EXT4-WakeScreen*** — `EXT4` extension patch. Solve the problem that some machines need to press any key to light up the screen after waking up. When using, you should inquire whether the `PNP0C0D` device name and path already exist in the patch file, such as` _SB.PCI0.LPCB.LID0`. If not, add it yourself.
+
+> ### SSDT-SBUS
+Why?: `0x001F0004` under Device (SBUS).
+
+> ### SSDT-DMAC
+Why?: `PNP0200` is missing in DSDT.
+
+> ### SSDT-MCHC
+Why?: `MCHC` is missing in DSDT.
+
+> ### SSDT-PMCR
+Why?: `PMCR`,` APP9876` missing in DSDT.
+
+> ### SSDT-PWRB
+Why?: `PNP0C0C` missing in DSDT.
+
+> ### SSDT-ALS0
+Why?: `ACPI0008` missing in DSDT.
+
+> ### SSDT-GPRW
+Why?: Fix instant wake by hooking GPRW (0D/6D Patch)