interface segregation
add diagram and package
add diagram