support load from file or url