add a Bridge pattern
add a Decorator pattern