add code and document