advance batch pricing promotion
decorator design pattern
recursion
deep copy for checkable