implemented async player saving