universal-argument support
one gitignore!
seperate files
move back some function