add shadow_fn.py, split out from function unit