Add files; eparate controlers into independent file; Several change in architecture