renamed SrcElementType to SrcType and allowed src to be a type mirror