construct view controller