use context in conjunction with let as opposed to local variables and require shellout explicitly in the provider