add some fundmental codes