more tests
add tests
implement 2.3.1.
implement 2.3.2.2.
implement 2.3.2.3.