add demo and test case