everything implemented
update gitignore