refector class to used linkedHashMap
fixed merge conflict