Screwd up refactor
Screwd up refactor
Revert "Screwd up refactor"

This reverts commit 942794b5e5d88e9a3756e6a064e86751d1390f95.
Revert "Screwd up refactor"

This reverts commit 0cd04ce4efee63adc3638e25cc0a7557d8a75f91.
refactor update
finish refactoring