few new functions to support other work