further modification and UI testing abstraction