added updateChain!(algo) and evaluateChainID(algo, id)