add test for callback only once