Add test scenarios and refactor with directory structure