Full refactor and restructure.