Review

a lot of code changed
you should really make use of the gitignore I proposed. There's no need to store .idea files in git