add optional option filter function