Class cleanup + Direct downloads fix

* Simplified the class rules a bit.
* Direct downloads fell by the wayside during the fixes. I've added it back as an optional feature since it currently requires the API.