version 3.1, with internal refactor, and smarter when deciding wether
a source is in a field or not