use some time to write the codes