replaced byte[] to ByteString to avoid algorithm compilation problems
keep the order of the parameterproviders in a LinkedHashMap
only run algorithms if any input value changes
typos
answer true to canProvide only for the parameters that can be extracted from containers