add algorithm-struct