separation of config and generate