restructured Main