Restructure the whole thing