Add chat view controller, adjust design, and fix several bugs