add decorator for tracking model's changes