properly port ContentLoader