added speaking function