facade example
add flyweight pattern
add proxy pattern
add proxy pattern
chain of reponsability patterns