setting up design pattern