re-arrange modes
add .gitignore