use template inheritance
updated .gitignore