Works alright, need to deal with divide by zero and rate limits