fix tests, update setup.py test to assert 100% coverage, add requirements
test to 100%