polymorphic search works from both sides