add meeting by contact, and refactoring