Added tests and slightly updated code for convenience
added idea project files
Rollback addition of idea project files
Remove changes unrelated to new tests and reformat for code style
Merge branch 'addTests'

* addTests:
  Remove changes unrelated to new tests and reformat for code style
  Rollback addition of idea project files
  added idea project files
  Added tests and slightly updated code for convenience
Removing extraneous semicolons
Optimizing imports
Reformat code style