add passage1 to master branch
amend : add passage2 to master barnch
amend : add passage3 to master branch
explain the virtual method
sdfdsf