add buttons functionality
optimized for gui
fix bug
optimized for gui
optimized for gui