add Bridge Pattern