Add support for multivalued fields and dirty sources also, change implementation to be less memory loading