add a new algorithms framework