add protocol stack
add comments. refine naming
refine comments.