add doc anchor so suppress broken link
expand macros to suppress warnings
still need virtual for backwards compat
doc and warning cleanups
use new do_set_model function instead of set_model()
clang-format things
add warning on deprecated macro