All helper functions now accept an additional parameter of user-defined attributes