Functional version
Added gitignore to exclude npm and intermediate files