Should the analysis be run when stop is called? This may cause delays to the caller while the analysis finishes. Maybe we can store a list of time frames to analyze and process them when a different method such as generate() or analyze() is called.