Introduce more generic callback