update callbacks so it works when they don't exist