added end-to-end tests