Refactored to use Datablock and Phil.