add setup.py file
adding reporting for errors
adding unit tests and setup