Revised structure;
Revised code;