refactory file structure