add more elegant solution according to winnie