add design pattern project