adding `source` field and more TODOs