Refactor to be a little cleaner, make fewer requests