minor changes in puppy.py; some additional functionality in analysis.py