decorator in 12 steps and decorator by bruce eckel
decorator in python from stackoverflow