refactor directory structure & add a test data generator