added polymorphic report buider