Refactor Code

Refactor communication between View and ViewModel, ViewModel and
ViewModel
App Construction

+  Two direction search