all type tested, ready to deal with duplicate