refactor: fields got new setProduct method, so they are able to decide what happens depending on the product type