finally a button class that works well