Refactor, move into solid wip working state.