Added descriptions, refine codes