make cat work like cat
add filtering with predicates