add different states to buttons