better API + update bench