add benchmark & fix bug