new file
updated
use patsubst for generic invocation
new file