Actually learned how the API works, cut out a bunch of stuff