We could. But my plan for the future is to use the source object to extract the surface info. If we don't pass the source object we would need to pass both the source_id and the source class separately. So, unless there is a size issue (and according to my preliminary analysis it should not be there) I would go with a source attribute.