Organization

Trying to work out a structure and organization of how the refactor will work. The actual implementation should probably be another PR. This is for experimentation

\cc @pixeltrix
Prefer `detect` over `find`.<br>Line is too long. [97/80]