clean up when exit
refresh .gitignore
make 'end' observable