better file structure and tdd