updated player functions