update base on feedback 3