extend to BaseEntity