- some clean up
- getting ready for enforcing the "exactly" part of the problem
- fixed exception thrown for permutation count < 0
- added very light unit tests
- added comments