Negative seek is supported now. And some additional refactoring applied.