refact business code and do some prepare