add Contextual* to tbutils, clarify APIs a bit