refactored to static ExtractTokens() method that returns a list