design pattern for python