Re-arch again. WIP