refactored file strucure