add test case and require lib