made it optional if the encode funcs encode type, thus enabling the reflect value encoding to only encode interface type values