resolves #522 allow substitutions to be incrementally added & removed