Filtered reader

featuring @JacobMetcalf's contribution + merging master