using polymorphic to generate tracking