almost completed code
updated gitignore