refactor Scorer with new ArrayObj and collapse algorithm