commit of verification long standing branch

if you remove the ```final``` modifier, I think it's better to make it ```abstract``` to force all the subclasses properly implement this method.