refactored, folder structure