a bit modification
018 ver0.3
022