support mapping custom type to map value