init design patterns