Add callback decorator to simplify arg handling