Added the controller
Fixed the conflicts
Combined all the middle layer work together