refactor: better file structure