introduce first web page and some refactoring