use frog pointer to ensure atomic