[serialize] add recursion safe normalizer