1. add algorithm controller
2. change some method names