update: main page, minor refactoring