modified to use SIF::Data