restructuring and added key stuff
restructured