Fewer rest calls, more randomization

One thing I noticed is that you relied heavily on `.models`, when you can usually use properties and methods directly on the collection