Probably should commit more frequently. Here's a lot of stuff