added player factory