realize NBD , but accuracy only 15%