still working on bip rewrite, next I will rewrite recommend_core
I use the function point instead of switch method, compare tomorrow