I just committed the pep8 corrections. I think all that's left is the sparse case which I'll try to add later today, thanks for all the help