initial commit
fixed mutation function, now works well
cleaner `main` file
Adds documentation