add contact page and refactor