support yaml config files, the API is the same