add bridge pattern