update tests
better sparse support
pep8