Factor out ComplexChecker into a non-virtual class