Added smart callback system with optional args