change  SolverCoreExt to hold one SolverCore instead of extending it.
when extends, super.run() confuses me. is it threads issue?