add Observer
add ChainOfResponsibility
add PercentCalculator