How about for now we remove the filter argument to the constructor and change the sample method to "sample( float, float, Filter * )", then address the other stuff later on after further discussion?