add python design pattern