First commit. Currently finished main functionalities.
Fix typos