No I must have misunderstood. As long as you're never planning on passing in a Calculator object as `filter`, then this is right. If you ever do intend to, this should just check `filter.passes_filter` first and then `filter.filter` if it doesn't exist.