1. One or more computer readable storage media comprising instructions that, when executed by at least one processor, cause the at least one processor to implement a method for grouping windows, the method comprising: collecting window events associated with the windows; modeling states of the windows based on the collected window events, wherein different states of the windows correspond to different sets of the collected window events; and assigning various ones of the windows to various different groups based on the modeled states.