helper functions in progress