new functions for structures