several update & initial commit for button module