new button system

updated button system to use constructor