add some test and comment