add more folders and orgnize the logic