add Bridge pattern