fixed some problem, make compile result clean and better