add new algorithm and test shell