implements a scoring system