solution & e2e
add e2e test