note on helper functions