use best for key gen, best nonblocking for other