better use of cssselect
added selection.filter and test coverage
more idiomatic naming