Initial storage class push.

Most of the methods in it are for preferences, which may warrant a
separate class eventually.

I had intended on implementing some of it to run async but I had
forgotten how to do it.