Update controller methods to be all virtual

Fix #596
:question:  It does not exceed the limit.