Add callback and tests