hanguel polymorphic vs