init design pattern project