config is required before init