helper functions are back