Refactored viewDidLoad and added custom setup methods