added 'score2' method which is more functional (uses recursion internally)