more robust player