line 13~189 looks all dulicate, it would be better if use an array to generate this object.