do any of these imply certain dependencies that may be missing? should we throw some of these in `try` blocks, separately, with `pass` and some way of flagging the module as being unavailable (to then only complain when it is being actually used at runtime)?