- BaseFilter must have virtual dtor - magnitude object is not trivial, we need to manage filter lifetime - Ensure move also moves filter object - Clean-up using magnitude object by value in functions