function tokensOfOwner(address _owner) external view returns(uint256[] ownerTokens) {
        uint256 tokenCount = balanceOf(_owner);

        uint256[] memory result = new uint256[](tokenCount+commonPlayerCount);
        uint256 resultIndex = 0;

        uint256 playerId;
        for (playerId = 1; playerId <= commonPlayerCount; playerId++) {
            result[resultIndex] = playerId;
            resultIndex++;
        }

        if (tokenCount == 0) {
            return result;
        } else {
            uint256 totalPlayers = totalSupply();

            for (; playerId < totalPlayers; playerId++) {
                if (playerIndexToOwner[playerId] == _owner) {
                    result[resultIndex] = playerId;
                    resultIndex++;
                }
            }

            return result;
        }
    }