created abstract class for statuses
redesigned scoring to make it more robust