you should use a button library to make your code easier. It will handle bouncing for you.
As things need to be asynchronous (non blocking) you might benefit from studying state machines. Here is a small introduction to the topic: Yet another Finite State Machine introduction