Major refactor of ViewController