add Page Object pattern and generic WebContext for testing