add test and many code