finished e2e implementation with test