Changed and optimized the structure.