diff --git a/src/ChooseContactVC.h b/src/ChooseContactVC.h
new file mode 100644
index 0000000..9f85ba2
--- /dev/null
+++ b/src/ChooseContactVC.h
@@ -0,0 +1,43 @@
+/*
+ *  Copyright (C) 2019 Savoir-faire Linux Inc.
+ *  Author: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
+ */
+
+#import <Cocoa/Cocoa.h>
+#include <string>
+
+@protocol ChooseContactVCDelegate <NSObject>
+-(void)callToContact:(std::string)contactUri convUID:(std::string)convID;
+-(void)joinCall:(std::string)callId;
+@end
+
+namespace lrc {
+    namespace api {
+        class ConversationModel;
+        namespace conversation {
+            struct Info;
+        }
+    }
+}
+
+@interface ChooseContactVC: NSViewController
+@property (retain, nonatomic) id <ChooseContactVCDelegate> delegate;
+
+- (void)setConversationModel:(lrc::api::ConversationModel *)conversationModel
+      andCurrentConversation:(std::string)conversation;
+
+@end
