config, spooled out into type+methods