add commit function && fix generator