Kai has a good solid stay, I'm sure I did something right so I'll offer my advice.

Don't start off in front of him when you're teaching the command. Have him beside you (on leash) and say stay while you get your hand signal. Wait a few seconds and praise if he doesn't budge. Then take a step out and turn around, praise after a couple seconds. Then you eventually build up from that one step to a couple steps, to a foot and so on. When he makes a mistake, go "UH OH!" or some other ugly sound and place him back at the very spot in the same position. Our trainers also suggested putting them even further back so they realize that not obeying the stay will not get them closer, but further from you.

I'm not sure what to say about the floor issue though...maybe someone else will have some good tips.