founding and fixing some bug. long road ahead ><