refactored file organization