design patterns practice and experimentation project