directory structure and git ignore