partially implement ViewController