reorganized file structure for better clarity