added percentual ranking from zxcabs's request and refacored a lot to be more clean