Split up filter interface into controller and processor

also changed a bunch of floats to doubles