implemented remove_if, extract_if