main structure done