Generic button class.