solution & e2e test
add e2e test