+ *
+ * @throws InvalidArgumentException Occurs when the object given is not an attempted type for the normalizer
+ * @throws CircularReferenceException Occurs when the normalizer detects a circular reference when no circular
+ * reference handler can fix it
+ * @throws LogicException Occurs when the normalizer is not called in an expected context