design pattern init commit