opti
fix bugs