Starting on a big refactor.