refine codes
first commi