Updated

Updated with decorator approach