refactored to use promises to ensure player data loaded at bootstrap