add some concepts(param, algorithm base class) for init