ignore conflicting substitutions
crash on intersecting substitutions
pass an argument to top