update Build.PL
cache sources + allow sources to handle lists