new heurist, memory opt