proper handling of letting button go in all states