add decorator implement pattern design.