model
modify a little
Modify a little
Modify a little again
complete code