1) Remove brackets around match() where not required
2) Implement returned Filter type
3) Remove uneccessary into_owned_ptr() to avoid additional copy when update the map
4) Improve output format