improved the structure
fixxxx