per-source config can be optional