Big commit because josh doesn't know how to code