splitting out IEDirectives into XDReceiver and CacheDirectives traits