Refactor.
Refactor.
Revert to 083a9f51cd68115ff475d96ad37fae2e6ee27e5e