complete logic part.

FYI.
add code.

FYI.