- made 'local' constructor param optional

- throwing an error/exception when no 'username' param value is passed to constructor
- added some unit tests