I was told that a reliable measure of how long a puppy can hold it is Number of months a puppy is = Number of hours can hold. So a two and a half month old puppy should be let out every 2.5 hours. I have a shih-tzu mix who was bity, growly and aggressive when he was younger. We were suggested to use Nothing is free approach. It is when a pup is required to do something for you before he gets a treat, before he goes outside to play, before he gets his food. I was also told to make sure that the pup didn't have access to all of his toys all the time. I was to establish myself as the owner of all good things, be it food, toys, walks outside. That way, toys were put away until it was "play time" and they were put away when I decided they should be put away. I started getting Sam to sit or lay down for me before he got his leash put on, got his food or treats. He also did not have free rein of the house or toys. This was not a fast process and at times Sam is still growly, but his behaviors have reduced dramatically by the time he turned 8 months of age. Good luck.
Lou - CKCS - dob 11/21/2007; Sam - Shih-tzu - dob 11/28/2008; Beau - labrador - dob 8/13/2005; Toni - cat - dob fall 2004