Complete restructure WIP