list2 modified

matching algo bug fixed;
divide merge() into 5 methods seperated;