Closes #20. FilterOp should take a filter class