Restructure a bit and update with specs