added more fields to be saved and implemented stuff to avoid hitting the rate limit