introducing STI and polymorphic relations to DRY-up data model a bit