add helper functions